3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 function inc_log_dist($message, $logname=NULL, $logdir=NULL, $logsuf=NULL) {
17 static $compteur = array();
18 global $nombre_de_logs, $taille_des_logs;
20 if (is_null($logname) OR !is_string($logname))
21 $logname = defined('_FILE_LOG') ? _FILE_LOG
: 'spip';
22 if (!isset($compteur[$logname])) $compteur[$logname] = 0;
24 AND defined('_MAX_LOG')
26 $compteur[$logname]++
> _MAX_LOG
32 $logfile = ($logdir===NULL ? _DIR_LOG
: $logdir)
33 . (test_espace_prive()?
'prive_':'') //distinguer les logs prives et publics
35 . ($logsuf===NULL ? _FILE_LOG_SUFFIX
: $logsuf);
37 // si spip_log() dans mes_options, poser dans spip.log
38 if (!defined('_DIR_LOG'))
39 $logfile = _DIR_RACINE
._NOM_TEMPORAIRES_INACCESSIBLES
.$logname.'.log';
42 $pid = '(pid '.@getmypid
().')';
44 // accepter spip_log( Array )
45 if (!is_string($message)) $message = var_export($message, true);
47 $m = date("M d H:i:s").' '.$GLOBALS['ip'].' '.$pid.' '
48 .preg_replace("/\n*$/", "\n", $message);
51 if (@is_readable
($logfile)
52 AND (!$s = @filesize
($logfile) OR $s > $taille_des_logs * 1024)) {
53 $rotate = $nombre_de_logs;
54 $m .= "[-- rotate --]\n";
57 $f = @fopen
($logfile, "ab");
59 fputs($f, ($logname!==NULL) ?
$m : str_replace('<','<',$m));
64 AND function_exists('spip_unlink')) {
65 spip_unlink($logfile . '.' . $rotate);
67 @rename
($logfile . ($rotate ?
'.' . $rotate : ''), $logfile . '.' . ($rotate +
1));
71 // Dupliquer les erreurs specifiques dans le log general
72 if ($logname !== _FILE_LOG
73 AND defined('_FILE_LOG'))
74 inc_log_dist($logname=='maj' ?
'cf maj.log' : $message);